using UniversalAdmin.Application.DTOs;

namespace UniversalAdmin.Application.Services;

public interface IOperationLogService
{
    Task<PagedResultDto<OperationLogDto>> GetLogsAsync(int page = 1, int pageSize = 10, string? userId = null, string? operation = null, DateTime? startDate = null, DateTime? endDate = null);
    Task<OperationLogDto?> GetLogByIdAsync(Guid id);
    Task<OperationLogDto> CreateLogAsync(CreateOperationLogDto dto);
    Task<IEnumerable<OperationLogDto>> GetLogsByUserAsync(Guid userId, int page = 1, int pageSize = 10);
    Task<IEnumerable<OperationLogDto>> GetLogsByOperationAsync(string operation, int page = 1, int pageSize = 10);
    Task<IEnumerable<OperationLogDto>> GetLogsByDateRangeAsync(DateTime startDate, DateTime endDate, int page = 1, int pageSize = 10);
} 